# -*- coding: utf-8 -*-
"""
    xfree.tokens.verifiers
    ~~~~~~~~~~~~~~~~~~~~~
    文件描述：令牌验证器实现
    作者：xfree
    邮箱：cy_83k@qq.com
"""

from..core.exceptions import ValidationError
from..core.tokens import TokenVerifier


class EmailMatchesUserToken(TokenVerifier):
    """
    确保提交使用的令牌与用户输入的电子邮件相匹配。

    :param users: 用于查询的用户模型
    """

    def __init__(self, users):
        self.users = users

    def verify_token(self, token, email, **kwargs):
        """
        验证令牌的方法。

        :param token: 要验证的令牌
        :param email: 用户输入的电子邮件
        :param kwargs: 其他关键字参数（未使用）
        """
        user = self.users.query.get(token.user_id)
        if user.email.lower()!= email.lower():
            raise ValidationError("email", "Wrong email")